package cc.mrbird.febs.pay.base;

import com.alipay.easysdk.payment.common.models.AlipayTradeCloseResponse;
import org.springframework.beans.factory.InitializingBean;

import java.util.Map;

/**
 * @ClassName AbstractPayChooser
 * @Description
 * @Author 狗蛋儿
 * @Date 2020/11/19 14:26
 * @Version V1.0
 **/
public abstract class AbstractPayStrategy implements InitializingBean {


    /**
     * 支付
     *
     * @param
     * @return
     * @throws
     */
    public abstract Object pay(Map<String, String> parameterMap) throws Exception;

    /**
     * 取消关闭订单
     * @param parameterMap
     * @return
     * @throws Exception
     */
    public abstract Object cancel(Map<String, String> parameterMap) throws Exception;

    /**
     * 根据订单查询支付记录
     *
     * @param
     * @return
     * @throws
     */
    public abstract Object queryPay(Map<String, String> parameterMap) throws Exception;

    /**
     * 退款
     *
     * @return
     * @throws
     */
    public abstract Object refund(Map<String, String> parameterMap) throws Exception;

    /**
     * 退款查询
     *
     * @return
     * @throws
     */
    public abstract Object queryRefund(Map<String, String> stringStringMap) throws Exception;

}
